package com.yiren.dbaa.module.practice_set.basestation.contract;

import com.yiren.dbaa.currency.api.CommonCallBack;
import com.yiren.dbaa.module.practice_set.basestation.bean.BaseStationBean;

/**
 * @author lwb
 * @date : 2022/12/14 11:07
 * @description: 基站标定
 */
public interface CalibrationContract {

    interface Presenter {

        /**
         * 基站标定
         *
         * @param baseStationBean 固定基站
         * @param view
         */
        void calibrationBaseStation(BaseStationBean baseStationBean, CalibrationView view);

        /**
         * 清除线程
         */
        void removeThread();

        /**
         * 获取新基站盒id
         */
        void getNewBaseBoxId(BaseManageView view);

        /**
         * 更换基站盒id
         */
        void replaceBaseBoxId(String oldBaseId, String newBaseId, BaseManageView view);

        /**
         * 更换基站盒名称
         *
         * @param baseId
         * @param baseName
         * @param view
         */
        void replaceBaseBoxName(String baseId, String baseName, BaseManageView view);
    }

    interface Model {

        /**
         * 基站信息上传
         *
         * @param baseStationBean
         * @param callBack
         */
        void uploadBaseStation(BaseStationBean baseStationBean, CommonCallBack callBack);

        /**
         * 更新基站盒id
         */
        void updateBaseBoxId(String oldBaseId, String newBaseId, CommonCallBack callBack);

        /**
         * 更换基站盒名称
         *
         * @param baseId
         * @param baseName
         * @param callBack
         */
        void updateBaseBoxName(String baseId, String baseName, CommonCallBack callBack);
    }

    /**
     * 标定基站页面View回调
     */
    interface CalibrationView {

        /**
         * 设置固定基站id
         *
         * @param baseId
         */
        void setBaseId(String baseId);

        /**
         * 设置定位状态
         *
         * @param satelliteNum
         */
        void setPositionStatus(float satelliteNum);

        /**
         * 设置标定过程经纬高
         *
         * @param longitude
         * @param latitude
         * @param altitude
         */
        void setBaseLocation(String longitude, String latitude, String altitude);

        /**
         * 设置基站经纬高
         *
         * @param longitude
         * @param latitude
         * @param altitude
         */
        void setBaseLocation(String longitude, String latitude, String altitude, String address, String distance);

        /**
         * 刷新设置基站标定过程的详细信息
         */
        void setCalibrationEdit();

        /**
         * 标定成功
         */
        void setCalibrationSuccess();
    }

    /**
     * 基站管理页面View回调
     */
    interface BaseManageView {

        /**
         * 设置固定基站id
         *
         * @param baseId
         */
        void setBaseId(String baseId);

        /**
         * 更换基站盒成功
         */
        void updateBaseIdSuccess(String newBaseId);

        /**
         * 更换基站名称成功
         */
        void updateBaseNameSuccess(String baseName);

    }

}
